<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 程序的三大流程控制 
    // 1. 顺序结构  => 代码自上而下按顺序执行
    // 2. 选择结构  => 满足条件的情况下 执行某个代码段
    // 3. 循环结构  => 重复的执行某个代码段

    //  选择结构
    //  if
    //  if...else
    //  if...else if...else  多分支

    //  switch(){ }  多分支

    // ?:  三目运算符   双分支

    // 对比 if 和 switch ?
    // 1. if一般用于做条件判断,switch一般用于做数值判断
    // 2. switch可以有穿透效果, switch中的表达式和case中的常量做全等比较

    // var grade = Math.round(Math.random() * 100);
    // if (grade >= 90) {
    //     console.log(grade + "分,优秀");
    // } else if (grade >= 80) {
    //     console.log(grade + "分,良好");
    // } else if (grade >= 70) {
    //     console.log(grade + "分,一般");
    // } else if (grade >= 60) {
    //     console.log(grade + "分,及格");
    // } else {
    //     console.log(grade + "分,不及格");
    // }

    // var month = Math.round(Math.random() * 11) + 1; // 1-12
    // switch (month) {
    //     case 1: console.log(1);; break
    //     case 2: console.log(2);; break
    //     case 3: console.log(3);; break
    //     case 4: console.log(4);; break
    //     case 5: console.log(5);; break
    //     case 6: console.log(6);; break
    //     case 7: console.log(7);; break
    //     case 8: console.log(8);; break
    //     case 9: console.log(9);; break
    //     case 10: console.log(10);; break
    //     case 11: console.log(11);; break
    //     case 12: console.log(12);; break
    // }

    /* switch (month) {
        // 穿透 => 类似if中的多条件
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            console.log("大月");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            console.log("小月");
            break;
        case 2:
            console.log("2月");
            break;
        default:
            console.log("出现了意料之外的情况");
            break;
    } */


    // 循环结构 (三要素: 1. 初始值  2. 循环条件  3.自增/自减)
    // while
    // do...while
    // for

    // 判断一个数是否是质数(素数 除了1和它本身以外不在有其他 不再有其他数能整除它)
    // 举例说明
    // 9:  1-9 => 除了1和它本身以外 => 2 3 4 5 6 7 8 => 存在能整数它的数 => 合数
    // 7:  1-7 => 除了1和它本身以外 => 2 3 4 5 6  => 不存在能整数它的数 => 质数

    // 这么写只能判断是否是 合数: 如果是合数打印 如果不是合数 无法执行任何处理操作
    // var n = 121;
    // for (var i = 2; i < n; i++) { // 2 - 120
    //     if (n % i == 0) { //存在能整除它的数
    //         console.log(n + "是合数,存在能整数它的数:" + i);
    //         break;
    //     }
    // }


    // 解决方法: 用一个布尔值,来记录结果的状态

    // 假设法总结:
    // 假设法: 一般用于 判断某个范围内是否存在满足条件的元素 或  判断某个范围内的所有元素是否都满条件

    // a. 判断某个范围内是否存在满足条件的元素 => 只要有一个即可
    //    如何处理: 先假设不存在 => 如果能找到一个就存在(推翻假设)

    // b. 判断某个范围内的所有元素是否都满条件
    //    如何处理: 先假设都满足条件 => 如果能找到一个不满足条件的元素即可推翻假设


    // var flag = true; //假设是质数/素数(不存在能整除n的数)

    // var n = 9;
    // for (var i = 2; i < n; i++) { // 2 - 8
    //     if (n % i == 0) { //存在能整除它的数  => 合数 => 推翻假设
    //         // console.log(n + "是合数");
    //         flag = false; // 不是素数(合数)
    //         break;
    //     }
    // }

    // if (flag) {
    //     console.log(n + "是质数");
    // } else {
    //     console.log(n + "是合数")
    // }

    // 数组
    // 随机10个0-100的数 => 判断随机的十个数是否都大于60?












</script>

</html>